package(licenses = ["notice"])  # Apache 2.0

load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")

go_library(
    name = "boot",
    srcs = [
        "capability.go",
        "config.go",
        "controller.go",
        "events.go",
        "fds.go",
        "fs.go",
        "limits.go",
        "loader.go",
        "network.go",
        "strace.go",
    ],
    importpath = "gvisor.googlesource.com/gvisor/runsc/boot",
    visibility = [
        "//runsc:__subpackages__",
    ],
    deps = [
        "//pkg/abi/linux",
        "//pkg/control/server",
        "//pkg/cpuid",
        "//pkg/log",
        "//pkg/sentry/context",
        "//pkg/sentry/control",
        "//pkg/sentry/fs",
        "//pkg/sentry/fs/dev",
        "//pkg/sentry/fs/gofer",
        "//pkg/sentry/fs/host",
        "//pkg/sentry/fs/proc",
        "//pkg/sentry/fs/ramfs",
        "//pkg/sentry/fs/sys",
        "//pkg/sentry/fs/tmpfs",
        "//pkg/sentry/inet",
        "//pkg/sentry/kernel",
        "//pkg/sentry/kernel/auth",
        "//pkg/sentry/kernel/kdefs",
        "//pkg/sentry/limits",
        "//pkg/sentry/loader",
        "//pkg/sentry/platform",
        "//pkg/sentry/platform/kvm",
        "//pkg/sentry/platform/ptrace",
        "//pkg/sentry/sighandling",
        "//pkg/sentry/socket/epsocket",
        "//pkg/sentry/socket/hostinet",
        "//pkg/sentry/socket/netlink",
        "//pkg/sentry/socket/netlink/route",
        "//pkg/sentry/socket/unix",
        "//pkg/sentry/strace",
        "//pkg/sentry/syscalls/linux",
        "//pkg/sentry/time",
        "//pkg/sentry/usage",
        "//pkg/sentry/watchdog",
        "//pkg/syserror",
        "//pkg/tcpip",
        "//pkg/tcpip/link/fdbased",
        "//pkg/tcpip/link/loopback",
        "//pkg/tcpip/link/sniffer",
        "//pkg/tcpip/network/arp",
        "//pkg/tcpip/network/ipv4",
        "//pkg/tcpip/network/ipv6",
        "//pkg/tcpip/stack",
        "//pkg/tcpip/transport/ping",
        "//pkg/tcpip/transport/tcp",
        "//pkg/tcpip/transport/udp",
        "//pkg/urpc",
        "//runsc/boot/filter",
        "//runsc/specutils",
        "@com_github_opencontainers_runtime-spec//specs-go:go_default_library",
        "@com_github_syndtr_gocapability//capability:go_default_library",
    ],
)

go_test(
    name = "boot_test",
    size = "small",
    srcs = ["loader_test.go"],
    embed = [":boot"],
    deps = [
        "//pkg/control/server",
        "//pkg/log",
        "//pkg/sentry/context/contexttest",
        "@com_github_opencontainers_runtime-spec//specs-go:go_default_library",
    ],
)
